#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Author : raoxiaoyang
# @File : lightSensor.py
# @Software: PyCharm
# @Function: 获取光敏传感器读出的数据，数据的大小
#            表示光照强度，值越小，光照越强
# @Usage: a = SensorLig()
#         a.printLight()

from pi.controller.sensor.light import PCF8591 as ADC
import RPi.GPIO as GPIO
import time

class SensorLig:
	def __init__(self):
		'''
		初始化
		'''
		self.makerobo_DO = 17                    # 光敏传感器管脚
		GPIO.setmode(GPIO.BCM)                   # 管脚映射，采用BCM编码
		self.makerobo_setup()

	def makerobo_setup(self):
		'''
		配置信息
		'''
		ADC.setup(0x48)                          # 设置PCF8591模块地址
		GPIO.setup(self.makerobo_DO, GPIO.IN)    # 光敏传感器，设置为输入模式

	def printLight(self):
		'''
		打印获取的值
		这里我们用一个短暂时间间隔内的平均值替代瞬时值
		'''
		datalist = []
		for i in range(5):
			data = ADC.read(0)		             # data值越高代表光照强度越低
			datalist.append(data)
			#time.sleep(0.1)                      # 延时0.1s
		data = sum(datalist) / 5		         # 求均值，替代顺时的值
		return data                              # 读取AIN0的值，获取光敏模拟量值

